// src/types/dish.ts

// 定义菜品口味
export interface IDishFlavor {
  id?: number;
  dishId?: number;
  name: string;
  value: string; // 在文档中是 string，通常是 JSON 字符串 '["不辣", "微辣"]'
}

// 定义完整的菜品对象 (用于分页查询和ID查询)
export interface IDish {
  id: number;
  name: string;
  categoryId: number;
  categoryName?: string; // 分页查询时返回
  price: number;
  image: string;
  description: string;
  status: number; // 0 | 1
  updateTime: string;
  flavors?: IDishFlavor[]; // ID查询时返回
}

// 定义分页查询的 Query 参数接口
export interface IDishPageQuery {
  page: number;
  pageSize: number;
  name?: string;
  categoryId?: number;
  status?: number;
}

// 定义分页查询接口返回的数据结构
export interface IDishPageResult {
  total: number;
  records: IDish[];
}

// 定义新增菜品时，需要提交的数据 DTO
export interface IDishAddDTO {
  categoryId: number;
  description?: string;
  flavors?: IDishFlavor[];
  image: string;
  name: string;
  price: number;
  status?: number; // 0 | 1
}

// 定义编辑菜品时，需要提交的数据 DTO
export interface IDishEditDTO extends IDishAddDTO {
  id: number;
}
